package com.golden.procedure.service;

import java.util.List;

import com.golden.procedure.domain.OrderProductDO;
import com.golden.procedure.domain.WorkPhotoPickDO;
import com.golden.procedure.domain.WorkPhotoProductDO;
import com.golden.procedure.query.WorkAttachmentQueryDO;
import com.golden.procedure.result.ResultDO;

/**
 * 照片商品入册管理 <b>Description:</b><br>
 * 
 * @author Reading.Reagan</a>
 * @version 1.0
 * @Note <b>ProjectName:</b> procedure-api <br>
 *       <b>PackageName:</b> com.golden.procedure.service <br>
 *       <b>ClassName:</b> IWorkOrderService <br>
 *       <b>Date:</b> 2018年9月25日 下午2:39:22
 */
public interface IWorkPhotoProductService {

	/**
	 * 查询照片入册列表 <b>Description:</b><br>
	 * 
	 * @param queryDO
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月19日 下午4:10:05 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO query(WorkAttachmentQueryDO queryDO);

	/**
	 * 查询照片列表 <b>Description:本次、已选、未选、自备</b><br>
	 * 
	 * @param queryDO
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月19日 下午4:10:05 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO queryPick(WorkAttachmentQueryDO queryDO);

	/**
	 * 照片入册 <b>Description: </b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月20日 下午3:43:42 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO add(WorkPhotoPickDO domain);

	/**
	 * 编辑入册数据 <b>Description:</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年9月25日 下午2:39:40 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO edit(WorkPhotoProductDO domain);

	// /**
	// * 查询某个商品入册照片数量 <b>Description:</b><br>
	// *
	// * @param id
	// * @return ResultDO
	// * @Note <b>Author:</b> Reading.Reagan <br>
	// * <b>Date:</b> 2018年10月8日 下午4:10:43 <br>
	// * <b>Version:</b> 1.0
	// */
	// public Integer countByProduct(Integer id);

	/**
	 * 删除某张入册照片 <b>Description:</b><br>
	 * 
	 * @param id
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年10月8日 下午4:10:43 <br>
	 *       <b>Version:</b> 1.0
	 */
	public int deleteByAttachmentID(Integer attachmentID, String businessNo);

	/**
	 * 入册照片设置为扉页 <b>Description:</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年10月8日 下午4:10:43 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO setCover(WorkPhotoProductDO domain);

	/**
	 * 查询订单商品列表(测试用) <b>Description:</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年10月10日 下午4:05:53 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO queryProduct(WorkPhotoProductDO domain);

	/**
	 * 查询单张照片的入册数量统计 <b>Description:</b><br>
	 * 
	 * @param domain
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年10月8日 下午4:10:43 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO account(WorkPhotoProductDO domain);

	/**
	 * 开始选片时，初始化入底数据 <b>Description:</b><br>
	 * 
	 * @param workOrderID
	 * @param workPhotographyID
	 * @param businessNo
	 * @param lastBusinessNo
	 *            原业务单号（拷贝入底数据使用）
	 * @param source
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年10月12日 下午12:24:00 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO initPhotoFilm(Integer workOrderID, Integer workPhotographyID, String businessNo,
			String lastBusinessNo, Integer source);

	/**
	 * 入册详情 <b>Description:入册详情（提交制作单时使用）</b><br>
	 * 
	 * @param workOrderID
	 * @param businessNo
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年10月8日 下午4:10:43 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO pickDetail(WorkPhotoProductDO domain);

	/**
	 * 统计所有订单商品的入册照片数量及入底数量 <b>Description:统计所有商品的入册入底数据，提供给订单模块，更新订单相关数据</b>
	 * <br>
	 * 
	 * @param workOrderID
	 * @param businessNo
	 * @return ResultDO
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年10月8日 下午4:10:43 <br>
	 *       <b>Version:</b> 1.0
	 */
	public ResultDO accountPick(Integer workOrderID, String businessNo);

	/**
	 * 查询入册表中的订单商品及入册数据 <b>Description:</b><br>
	 * 
	 * @param workOrderID
	 * @param businessNo
	 * @return List<OrderProductDO>
	 * @Note <b>Author:</b> Reading.Reagan <br>
	 *       <b>Date:</b> 2018年10月26日 下午4:38:34 <br>
	 *       <b>Version:</b> 1.0
	 */
	public List<OrderProductDO> getPickProducts(Integer workOrderID, String businessNo);

}
